home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / future86.arc / DRIVER.LST < prev    next >
Encoding:
File List  |  1987-04-24  |  93.4 KB  |  1,431 lines

  1.  
  2.  
  3.  
  4. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page   1
  5. DRIVER...Console out file driver
  6.  
  7.                                         TITLE   'DRIVER...Console out file driver'
  8.                                         \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  9.                                         \\\This demonstration source code is copyrighted and is for the   \\\
  10.                                         \\\express use of FUTURE86 users persuant to the terms of the     \\\
  11.                                         \\\FUTURE86 license.                                              \\\
  12.                                         \\\                                                               \\\
  13.                                         \\\Copyright (C)1987 Development Associates                       \\\
  14.                                         \\\All rights reserved                                            \\\
  15.                                         \\\                                                               \\\
  16.                                         \\\This source code may be evaluated by potential FUTURE86        \\\
  17.                                         \\\users to determine product suitability.                        \\\
  18.                                         \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19.                                         \\\Some resources in this file are not utilized by                \\\
  20.                                         \\\the demonstration program.                                     \\\
  21.                                         \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22.                                         \\\ RFD Revised 4-02-87 --general file cleanup                    \\\
  23.                                         \\\             4-17-87 --added recoding examples                 \\\
  24.                                         \\\             4-18-87 --added cpu timing independence           \\\
  25.                                         \\\             4-19-87 --added scale music                       \\\
  26.                                         \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  27.                                         PAGE
  28.  
  29.  
  30.  
  31. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page   2
  32. DRIVER...Console out file driver
  33.  
  34.                                         
  35.                                         \\\Define system constants, etc..
  36.                                         
  37. 0000001B =                              ESCAPE          EQU     27             \ESCAPE key
  38.                                         
  39. 1EF0/4F18                               SCREENSIZE      DW      184FH       \18=hex rows, 4F=columns
  40.                                         
  41. 1EF2/07                                 CRTATR          DB      07          \VIDEO Attribute
  42.                                         
  43. 0000:0462 =                             PAGE#           EQU     0:462H      \DOS page addr
  44.                                         
  45. 000000D9 =                              LRCORN          EQU     217            \CODE for LR char
  46.                                         
  47. 000000DA =                              ULCORN          EQU     218            \CODE for UL char
  48.                                         
  49. 000000C0 =                              LLCORN          EQU     192            \CODE for LL char
  50.                                         
  51. 000000BF =                              URCORN          EQU     191            \CODE for UR char
  52.                                         
  53.                                         \\\SCREEN ATTRIBUTE CONTROL\\\
  54.                                         
  55. 1EF3/                                   : GET_ATR 
  56. 1EF3/E841E2 F21E E817E3 E9E7E3                  CRTATR B@ SWAP ;      \get ATR & put under mask
  57.                                         
  58.                                         \NOTE: THESE MODES CAN BE MIXED
  59.                                         
  60. 1EFE/                                   : VSET                          \logical OR
  61. 1EFE/E8F2FF E836E5                              GET_ATR FOR 
  62. 1F04/E830E2 F21E E9DFE2                         CRTATR B! ;
  63.                                         
  64. 1F0C/                                   : VCLR                          \logical AND
  65. 1F0C/E8E4FF E81EE5                              GET_ATR FAND 
  66. 1F12/E822E2 F21E E9D1E2                         CRTATR B! ;
  67.                                         
  68.                                         PAGE
  69.  
  70.  
  71.  
  72. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page   3
  73. DRIVER...Console out file driver
  74.  
  75.                                         
  76.                                         \THE NEXT WORDS SET UP THE VIDEO ATRIBUTES BUT DO NOT CAUSE
  77.                                         \ANY ACTION UNTIL EITHER FCO OR XCO AND THEIR DERIVATIVES
  78.                                         \ARE USED(these words are defined later in this file)
  79.                                         
  80. 1F1A/                                   : NORM                          \normal video attribute
  81. 1F1A/E809E2 07 E8EBFF                           7 VCLR 
  82. 1F21/E802E2 07 EBD7                             7 VSET ;
  83.                                         
  84. 1F27/                                   : INTENS                        \intensified chars
  85. 1F27/E8FCE1 08 EBD1                             01000B VSET ;
  86.                                         
  87. 1F2D/                                   : -INTENS                       \cancel intensity
  88. 1F2D/E8F6E1 F7 EBD9                             11110111B VCLR ;
  89.                                         
  90. 1F33/                                   : BLINK                         \char blinking
  91. 1F33/E8F0E1 80 EBC5                             10000000B VSET ;
  92.                                         
  93. 1F39/                                   : -BLINK                        \cancel char blink
  94. 1F39/E8EAE1 7F EBCD                             1111111B VCLR ;
  95.                                         
  96. 1F3F/                                   : REVERSE                       \reverse video
  97. 1F3F/E8E4E1 70 E8B8FF                           01110000B VSET
  98. 1F46/E8DDE1 F8 EBC0                             11111000B VCLR ;
  99.                                         
  100. 1F4C/                                   : -REVERSE                      \cancel reverse video
  101. 1F4C/E8D7E1 07 E8ABFF                           111B VSET
  102. 1F53/E8D0E1 8F EBB3                             10001111B VCLR ;
  103.                                         
  104.                                         
  105. 1F59/                                   : BLACK                         \dark screen--no chars
  106. 1F59/E8CAE1 88 EBAD                             10001000B VCLR ;
  107.                                         
  108. 1F5F/                                   : WHITE                         \bright screen--no chars
  109. 1F5F/E8C4E1 77 EB99                             01110111B VSET ;
  110.                                         
  111.                                         PAGE
  112.  
  113.  
  114.  
  115. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page   4
  116. DRIVER...Console out file driver
  117.  
  118.                                         
  119.                                         \\\DEFINE INT 10H STRUCTURE
  120.                                         
  121. 1F65/                                   : INT_10H
  122. 1F65/E8BEE1 10 E8BFEF                           10H SET_INT_NO
  123. 1F6C/E8F9ED                                     !AH
  124. 1F6F/E84DEF                                     SYSTEM_CALL
  125. 1F72/E9BEEF                                     RESTORE_INT_NO ;
  126.                                         
  127.                                         \\\SET VIDEO MODE
  128.                                         
  129.                                         \NOTE THAT PROCEDURE NAMES CAN BE SELECTED TO DOCUMENT TO ANY
  130.                                         \DESIRED LEVEL--THERE REALLY CAN NOT BE ANY DOUBT ABOUT WHAT THE
  131.                                         \NEXT FEW WORDS DO
  132.                                         
  133.                                         \EQU FOR VIDEO MODE SELECTION
  134. 00000000 =                              40X25_BW        EQU     0
  135. 00000001 =                              20X25_COLOR     EQU     1
  136. 00000002 =                              80X25_BW        EQU     2
  137. 00000003 =                              320X200_COLOR   EQU     3
  138. 00000004 =                              320X200_BW      EQU     4
  139. 00000005 =                              320X200_GRAPH   EQU     5
  140. 00000006 =                              640X200_GRAPH   EQU     6
  141. 00000007 =                              80X25_MONO      EQU     7           \mono card only
  142.                                         
  143. 1F75/                                   : SET_VIDEO_MODE        \mode ---
  144. 1F75/E8F8ED                                     !AL             \store mode
  145. 1F78/E80EE2                                     0               \operation type
  146. 1F7B/EBE8                                       INT_10H  ;
  147.                                         
  148.                                         PAGE
  149.  
  150.  
  151.  
  152. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page   5
  153. DRIVER...Console out file driver
  154.  
  155.                                         
  156.                                         \\\SET ACTIVE PAGE#\\\
  157.                                         
  158. 1F7D/                                   : ?PAGE#   
  159. 1F7D/E8D5E1 62040000 E98BE2                     PAGE# B@ ;      \Get active page no.
  160.                                         
  161. 1F87/                                   : SET_PAGE#             \PAGE# ---
  162.                                                                 \page no. = 0--3 for CGA
  163. 1F87/E8E6ED                                     !AL
  164. 1F8A/E899E1 05 EBD5                             5 INT_10H ;
  165.                                         
  166.                                         \\\FORCE CURSOR POSITION
  167.                                         
  168. 1F90/                                   : PUT_CURS              \ row colm ---
  169. 1F90/E825EE                                     !DL             \colm
  170. 1F93/E81AEE                                     !DH             \row
  171. 1F96/E8E4FF E8E4ED                              ?PAGE#  !BH
  172. 1F9C/E887E1 02 EBC3                             2 INT_10H ;
  173.                                         
  174.                                         \\\FIND CURSOR POSITION\\\
  175.                                         
  176. 1FA2/                                   : GET_CURS      \ --- Attrib row colm
  177. 1FA2/E8D8FF E8D8ED                              ?PAGE# !BH
  178. 1FA8/E87BE1 03 E8B6FF                           3 INT_10H
  179. 1FAF/E87EEE                                     @CX             \get atr
  180. 1FB2/E89BEE                                     @DH             \get row
  181. 1FB5/E9A0EE                                     @DL  ;          \get colm
  182.                                         
  183. 1FB8/                                   : HOME          \move cursor to upper left of screen
  184. 1FB8/E8CEE1 E8EAED                              0 !DX
  185. 1FBE/E8BCFF E8BCED                              ?PAGE# !BH
  186. 1FC4/E85FE1 02                                  2
  187. 1FC8/EB9B                                       INT_10H ;
  188.                                         
  189.                                         \\\CLEAR DESIRED SCREEN AMOUNT\\\
  190.                                         
  191. 1FCA/                                   : CLR                           \srow scolm erow ecolm
  192. 1FCA/E8BCE1 E8A0ED                              0 !AL
  193. 1FD0/E8E5ED                                     !DL                     \ecolm 
  194. 1FD3/E8DAED                                     !DH                     \erow
  195. 1FD6/E8C7ED                                     !CL                     \sclm
  196. 1FD9/E8BCED                                     !CH                     \srow
  197. 1FDC/E858E1 F21E E82EE2 E899ED                  CRTATR B@ !BH           \crtatr
  198. 1FE7/E83CE1 06 E977FF                           6 INT_10H ;
  199.                                         
  200.                                         PAGE
  201.  
  202.  
  203.  
  204. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page   6
  205. DRIVER...Console out file driver
  206.  
  207.                                         
  208.                                         \\\READ SCREEN CHAR AT CURSOR\\\
  209.                                         
  210. 1FEE/                                   : READ_CHAR/AT  \ --- atr char
  211. 1FEE/E88CFF E88CED                              ?PAGE# !BH              \page no.
  212. 1FF4/E82FE1 08 E86AFF                           8 INT_10H
  213. 1FFB/E80AEE                                     @AH                     \atr
  214. 1FFE/E90FEE                                     @AL ;                   \char
  215.                                         
  216.                                         \\\WRITE SCREEN CHARS AT CURSOR\\\
  217.                                         
  218. 2001/                                   : WRITE_CHAR/AT         \char size ---
  219. 2001/E879FF E879ED                              ?PAGE# !BH      \page no.
  220. 2007/E886ED                                     !CX             \no. of chars to write
  221. 200A/E863ED                                     !AL             \char
  222. 200D/E827E1 F21E E8FDE1 E870ED                  CRTATR B@ !BL   \atr
  223. 2018/E80BE1 09 E946FF                           9 INT_10H ;
  224.                                         
  225. 201F/                                   : WRITE_ATR             \ ---
  226. 201F/E8CCFF                                     READ_CHAR/AT    \ get char & atr at curs pos
  227. 2022/E883E2                                     DROP2ND  
  228. 2025/E840E1                                     1
  229. 2028/EBD7                                       WRITE_CHAR/AT ;  \rewrite char w/new atr
  230.                                         
  231. 202A/                                   : CLR_SCREEN    \CLEAR ENTIRE SCREEN
  232. 202A/E85CE1 E859E1                              0  0   
  233. 2030/E8F3E0 18 E8EFE0 4F EB90                   24 79 CLR ;
  234.                                         
  235. 203A/                                   : CLS                           \same as IBM CLS
  236. 203A/E87BFF EBEB                                HOME CLR_SCREEN ;         
  237.                                         
  238. 203F/                                   : BEL           \ring computer bell
  239. 203F/E8E4E0 07 E96EEF                           7 CO ;                    
  240.                                         
  241.                                         \\\SCROLL CONTROL
  242.                                         
  243. 2046/                                   : SCROLL_UP_LINES          \n1(lines to scroll up) ---
  244. 2046/E827ED                                       !AL              \no. lines to scroll
  245. 2049/E83DE1 E841ED                              0 !CX              \start scroll at UL corner
  246. 204F/E8E5E0 F01E E8C9E1 E84EED                  SCREENSIZE @ !DX   \end row,column of scroll
  247. 205A/E8DAE0 F21E E8B0E1 E81BED                  CRTATR B@ !BH      \atr used on blank line
  248. 2065/E8BEE0 06 E9F9FE                           6 INT_10H ;
  249.                                         
  250. 206C/                                   : SCROLL_UP_ONE_LINE
  251. 206C/E8F9E0 EBD5                                1 SCROLL_UP_LINES ;
  252.                                         
  253.                                         PAGE
  254.  
  255.  
  256.  
  257. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page   7
  258. DRIVER...Console out file driver
  259.  
  260.                                         
  261.                                         \\\The next word, FCO, is a console out procedure and is written mostly
  262.                                         \in assembly language for maximum speed. This has the same function 
  263.                                         \as the kernel word CO but is faster.  An even faster and less
  264.                                         \portable method would be a direct hardware access but that should
  265.                                         \not be used except in the most time critical applications.
  266.                                         \A word that follows, XCO, is a mix of high level and assembly. 
  267.                                         \FCO runs much faster than XCO which shows the speed advantage 
  268.                                         \that low level code can yield. However, XCO is much more readable 
  269.                                         \and was obviously easier to write. In fact, FCO was written after 
  270.                                         \XCO was developed and was used as the basis for coding FCO. this is
  271.                                         \a good example of a valid development technique--first prototyping in 
  272.                                         \high level and then--if the application requires-rewriting in assembler.
  273.                                         
  274.                                         \Note the use of local labels signified by the "_" character 
  275.                                         \in front of the label.
  276.                                         
  277. 2071/                                   : FCO
  278. 2071/06                                          PUSH ES                         \preset es:=0
  279. 2072/B80000                                      MOV AX,0                        \= DOS low memory
  280. 2075/8EC0                                        MOV ES,AX
  281. 2077/B403                                        MOV     AH,3                    \get cursor pos.
  282. 2079/268A3E6204                                  MOV     BH,BYTE ES:PAGE#        \get current disp. page
  283. 207E/55                                          PUSH BP 
  284. 207F/CD10                                        INT 10H 
  285. 2081/5D                                          POP BP  
  286.                                         \
  287. 2082/8A4600                                      MOV     AL,[BP]                 \load the character
  288. 2085/3C0D                                        CMP     AL,0DH                  \CR?
  289. 2087/7505                                        JNE     _FCO_BS                 \branch if not
  290. 2089/B200                                        MOV     DL,0                    \clear column reg.
  291. 208B/E95900                                      JMP     _FCO2                   \set cursor and return
  292. 208E/                                   _FCO_BS:
  293. 208E/3C08                                        CMP     AL,08                   \BS?
  294. 2090/750A                                        JNE     _FCOLFX                 \branch if not
  295. 2092/80FA00                                      CMP     DL,0                    \far left colmn?
  296. 2095/7450                                        JE      _FCO2                   \branch if so
  297. 2097/FECA                                        DEC     DL                      \else decrement cursor
  298. 2099/E94B00                                      JMP     _FCO2                   \set cursor & return
  299. 209C/                                   _FCOLFX:                                
  300. 209C/3C0A                                        CMP     AL,0AH                  \LF?
  301. 209E/7428                                        JE      _FCO_LF                 \branch if so
  302. 20A0/3C07                               _?BEL:   CMP     AL,7
  303. 20A2/7506                                        JNE     _FCO_CHR
  304. 20A4/                                   _BEL:  
  305. 20A4/E898FF                                      BEL                            \speed not important; so hi level
  306. 20A7/E94800                                      JMP _XDN                       \now drop stack and exit
  307.                                         \
  308.                                         
  309.                                         PAGE
  310.  
  311.  
  312.  
  313. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page   8
  314. DRIVER...Console out file driver
  315.  
  316.                                         
  317. 20AA/                                   _FCO_CHR:         
  318. 20AA/52                                          PUSH    DX                      \save current cursor
  319. 20AB/B409                                        MOV     AH,9                    \write current atr & chr
  320. 20AD/2E8A1EF21E                                  MOV     BL,BYTE CS:CRTATR       \get char attribute
  321. 20B2/268A3E6204                                  MOV     BH,BYTE ES:PAGE#        \get page no.
  322. 20B7/B90100                                      MOV     CX,1                    \char count
  323. 20BA/55                                          PUSH    BP 
  324. 20BB/CD10                                        INT     10H 
  325. 20BD/5D                                          POP     BP  
  326. 20BE/5A                                          POP     DX                      \get current cursor
  327. 20BF/FEC2                                        INC     DL                      \advance colmn
  328. 20C1/80FA50                                      CMP     DL,80                   \colmn limit?
  329. 20C4/7504                                        JNZ     _FCO1                   \branch if not
  330. 20C6/B200                                        MOV     DL,0                    \set far left position
  331. 20C8/                                   _FCO_LF:
  332. 20C8/FEC6                                        INC     DH                      \advance row
  333. 20CA/80FE18                             _FCO1:   CMP     DH,24                   \row limit?
  334. 20CD/7E18                                        JLE     _FCO2                   \branch if not
  335. 20CF/B618                                        MOV     DH,24                   \set bottom position
  336. 20D1/52                                          PUSH    DX                      \save cursor position
  337. 20D2/B80106                                      MOV     AX,601H                 \scroll up one line
  338. 20D5/B90000                                      MOV     CX,0                    \left upper corner
  339. 20D8/2E8B16F01E                                  MOV     DX,CS:SCREENSIZE        \right lower corner
  340. 20DD/2E8A3EF21E                                  MOV     BH,CS:CRTATR            \attribute
  341. 20E2/55                                          PUSH    BP 
  342. 20E3/CD10                                        INT     10H 
  343. 20E5/5D                                          POP     BP  
  344. 20E6/5A                                          POP     DX                      \get cursor position
  345. 20E7/                                   _FCO2:   
  346. 20E7/B402                                        MOV     AH,2                    \set new cursor position 
  347. 20E9/268A3E6204                                  MOV     BH,BYTE ES:PAGE#        \active display page
  348. 20EE/55                                          PUSH    BP 
  349. 20EF/CD10                                        INT     10H 
  350. 20F1/5D                                          POP     BP  
  351. 20F2/83C504                             _XDN:    ADD     BP,4                    \clean stack
  352. 20F5/07 C3                                       POP     ES           ;          \finally, the end of FCO
  353.                                                                                 
  354.                                         PAGE
  355.  
  356.  
  357.  
  358. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page   9
  359. DRIVER...Console out file driver
  360.  
  361.                                         
  362.                                         \\\XCO IS A GOOD EXAMPLE OF MIXING ASSEMBLY AND HI-LEVEL IN A MODELESS
  363.                                         \WAY THAT IS NATURAL WITH FUTURE86.
  364.                                         
  365. 20F7/                                   : XCO 
  366. 20F7/E883FE E883EC                              ?PAGE# !BH               \select page no.
  367. 20FD/E826E0 03 E861FE                           3 INT_10H
  368. 2104/E849ED                                     @DH
  369. 2107/E81CE0 18 E8E6E2                           24 < 
  370. 210E/E864E0 E305                              IF
  371. 2113/E90F00                                     JMP _OUTPUT              \branch if now row limit
  372. 2116/EB0D                                     ELSE
  373. 2118/E851FF                                         SCROLL_UP_ONE_LINE   \hi-level scroll..but just once/line
  374. 211B/E808E0 17 E867E0 E86BFE                            23 0 PUT_CURS    \adjust cursor position
  375. 2125/                                        THEN
  376. 2125/                                   _OUTPUT:                         \this is local label
  377. 2125/E8F7FE                                     WRITE_ATR                \put the character attribute
  378. 2128/E989EE                                           CO ;               \write the character
  379.                                         
  380.                                         \STRING OUTPUT VERSION THAT USES FCO
  381.                                         
  382. 212B/                                   : FPRINTS
  383. 212B/                                           BEGIN                 \string(addr,length)--- 
  384. 212B/E840E7                                       ?NULL 
  385. 212E/E84BE0 E209                                -IF
  386. 2133/E82DE9 E838FF                                CGET FCO
  387. 2139/E9EFFF C3                                  REPEAT ;
  388.                                         
  389. 213D/                                   : BACK_UP               \backspace, nondestructive
  390. 213D/E8E6DF 08 E92DFF                           08 FCO ;
  391.                                         
  392. 2144/                                   : FCRLF 
  393. 2144/E8DFDF 0A E826FF                           10 FCO                  \line feed
  394. 214B/E8D8DF 0D E91FFF                           13 FCO ;                \carriage return
  395.                                         
  396.                                         \GENERATE MULTIPLE CRS
  397.                                         
  398. 2152/                                   : CRS                   \ n ---
  399. 2152/E860E0                                     DO
  400. 2155/E8ECFF                                       FCRLF
  401. 2158/E869E0 E9F7FF C3                           LOOP ;
  402.                                         
  403. 215F/                                   : DRAW          \ char # ---
  404. 215F/E853E0                                     DO 
  405. 2162/E81FE1 E809FF                                DUP FCO 
  406. 2168/E859E0 E9F4FF E933E1                       LOOP DROP ;
  407.                                         
  408. 2171/                                   : SEP                     \make a line of '=' marks
  409. 2171/E8B2DF CD E8AEDF 50 EBE4                   205 80 DRAW ;   
  410.                                         
  411.                                         PAGE
  412.  
  413.  
  414.  
  415. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  10
  416. DRIVER...Console out file driver
  417.  
  418.                                         
  419.                                         \\\PRIMATIVE TEXT LINES\\\
  420.                                         
  421. 217B/                                   : LF                 \linefeed
  422. 217B/E8A8DF 0A E9EFFE                           10 FCO ;
  423.                                         
  424. 2182/                                   : H_BIT              \make a '-'
  425. 2182/E8A1DF C4 E9E8FE                           196 FCO ;
  426.                                         
  427. 2189/                                   : V_BIT              \make a vertical mark
  428. 2189/E89ADF B3 E9E1FE                           179 FCO ;
  429.                                         
  430. 2190/                                   : HLINE              \horiz line from curs pos
  431. 2190/E8D5DF E88AE3                              1 MAX 
  432. 2196/E81CE0                                    DO 
  433. 2199/E8E6FF                                     H_BIT
  434. 219C/E825E0 E9F7FF C3                          LOOP ;        
  435.                                         
  436. 21A3/                                   : VLINE              \vert line from curs pos
  437. 21A3/E8FCFD                                     GET_CURS 
  438. 21A6/E84BE4 E8F8E0                              DSWAP DROP
  439. 21AC/E8B9DF E86EE3                              1 MAX 
  440. 21B2/E800E0                                     DO 
  441. 21B5/E8D9E0 E8D5FD                                DDUP PUT_CURS
  442. 21BB/E8CBFF                                         V_BIT 
  443. 21BE/E8F6E1                                     1+2ND
  444. 21C1/E800E0 E9EEFF                              LOOP 
  445. 21C7/E9D7E0                                     DDROP ;
  446.                                         
  447. 21CA/                                   : LIMIT
  448. 21CA/E859DF 02 E84FE3 E852DF 02 E98FE1          2 MAX 2 - ;
  449.                                         
  450. 21D8/                                   : SETUP_BOX     \manipulate stack
  451. 21D8/E819E4 E8ECFF                              DSWAP LIMIT 
  452. 21DE/E804E1 E8E6FF                              SWAP  LIMIT
  453. 21E4/E8FEE0 E80AE4 E8A4E0                       SWAP DSWAP DDUP
  454. 21ED/E9A0FD                                     PUT_CURS  ;
  455.                                         
  456.                                         PAGE
  457.  
  458.  
  459.  
  460. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  11
  461. DRIVER...Console out file driver
  462.  
  463.                                         
  464. 21F0/                                   : TOP_LINE      \draw top horiz
  465. 21F0/E833DF DA E87AFE                           ULCORN FCO 
  466. 21F7/E82CDF 04 E809E1 E88FFF                    4 PICK HLINE
  467. 2201/E822DF BF E869FE                           URCORN FCO
  468. 2208/E832FF                                     BACK_UP
  469. 220B/E96DFF                                     LF  ;
  470.                                         
  471. 220E/                                   : RVERT_LINE    \draw right vert
  472. 220E/E815DF 03 E8F2E0 EB8C                      3 PICK VLINE ;
  473.                                         
  474. 2217/                                   : LVERT_LINE    \draw left vert
  475. 2217/E876FD E85EFF                              PUT_CURS LF
  476. 221D/E883FF                                     VLINE
  477. 2220/E81AFF                                     BACK_UP 
  478. 2223/E800DF C0 E947FE                           LLCORN FCO ;
  479.                                         
  480. 222A/                                   : BOT_LINE      \draw bot horiz
  481. 222A/E863FF E8F6DE D9 E93DFE                    HLINE LRCORN FCO ;
  482.                                         
  483. 2234/                                   : BOX           \horizlen vertlen row colm --- box
  484. 2234/E8A1FF                                     SETUP_BOX       \horizlen = 80 MAX
  485. 2237/E8B6FF                                     TOP_LINE        \vertlen  = 24 MAX
  486. 223A/E8D1FF                                     RVERT_LINE  
  487. 223D/E8D7FF                                     LVERT_LINE
  488. 2240/EBE8                                       BOT_LINE ;
  489.                                         
  490.                                         PAGE
  491.  
  492.  
  493.  
  494. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  12
  495. DRIVER...Console out file driver
  496.  
  497.                                         
  498.                                         \\\SOUND\\\
  499.                                         
  500. 000000B6 =                              TMR_MDE_REG     EQU     0B6H    \timer mode register
  501.                                         
  502. 00000043 =                              TM_MDE_PRT      EQU     43H     \timer mode port
  503.                                         
  504. 000004C5 =                              SCALE           EQU     1221    \freq scale# for IBM PC
  505.                                         
  506. 00000042 =                              TMR2_PRT        EQU     42H     \timer 2 port
  507.                                         
  508. 00000061 =                              PRTB            EQU     61H     \timer port B
  509.                                         
  510. 00000003 =                              SPK_ON          EQU     03      \'on' command code
  511.                                         
  512. 00000001 =                              SPK_OFF         EQU      1      \'off' command code
  513.                                         
  514. 2242/0000                               SAVEIT          DW       0      \command save bucket
  515.                                         
  516. 2244/                                   : SETUP                         \ --- ; init reg & port
  517. 2244/E8DFDE B6                                  TMR_MDE_REG 
  518. 2248/E8DBDE 43                                  TM_MDE_PRT  
  519. 224C/E958E2                                     FOUT ;
  520.                                         
  521. 224F/                                   : FREQ                          \ freq ---
  522. 224F/E8B2DE C504                                SCALE  
  523. 2254/E8ADDE E803 E85CE5                         1000 D* 
  524. 225C/E886E0 E8DDE5                              SWAP D/ 
  525. 2262/E81FE0 E8BEDE 42                           DUP TMR2_PRT 
  526. 2269/E83BE2                                     FOUT 
  527. 226C/E8B7DE 08 E8DBE1                           8 SR 
  528. 2273/E8B0DE 42 E92DE2                           TMR2_PRT FOUT ;
  529.                                         
  530. 227A/                                   : SOUND_ON                      \ --- ;activate tone generator
  531. 227A/E8A9DE 61 E81CE2 E800E0                    PRTB FIN DUP 
  532. 2284/E8B0DE 4222 E86BDF                         SAVEIT ! 
  533. 228C/E897DE 03                                  SPK_ON 
  534. 2290/E8A7E1                                     FOR 
  535. 2293/E890DE 61 E90DE2                           PRTB FOUT ;
  536.                                         
  537.                                         PAGE
  538.  
  539.  
  540.  
  541. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  13
  542. DRIVER...Console out file driver
  543.  
  544.                                         
  545. 229A/                                   : OFF                           \turn tone off
  546. 229A/E89ADE 4222 E87EDF                         SAVEIT @ 
  547. 22A2/E881DE 61 E9FEE1                           PRTB FOUT ;
  548.                                         
  549. 22A9/                                   : TONE_CHANGE                   \ freq ---  ;to change tone pitch
  550. 22A9/E898FF EBA1                                SETUP FREQ ;
  551.                                         
  552. 22AE/                                   : TONE                          \freq, in cps ---
  553. 22AE/E8F8FF                                     TONE_CHANGE 
  554. 22B1/EBC7                                       SOUND_ON ;
  555.                                         
  556.                                         \\\equates for musical notes, cps
  557. 00000210 =                              CNXT   EQU            528
  558. 000001B8 =                              ANAT   EQU            440 
  559. 000001EF =                              BNAT   EQU            495 
  560. 0000018C =                              GNAT   EQU            396 
  561. 00000160 =                              FNAT   EQU            352 
  562. 0000014A =                              ENAT   EQU 330 
  563. 00000129 =                              DNAT   EQU 297 
  564. 00000108 =                              CNAT   EQU 264 
  565.                                         
  566.                                         
  567.                                         
  568.                                         PAGE
  569.  
  570.  
  571.  
  572. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  14
  573. DRIVER...Console out file driver
  574.  
  575.                                         
  576.                                         \ This section displays the contents of a text file.
  577.                                         \ By use of a separate script file each character 
  578.                                         \ output can be controlled as to format and speed and
  579.                                         \ screen placement. 
  580.                                         \ Script file contains the following characters
  581.                                         \ that change the output text mode as follows:
  582.                                         
  583.                                         \ a ... normal output, next 3 bytes = #chars to output
  584.                                         \ b ... inverse output, "
  585.                                         \ c ... blink output,   "
  586.                                         \ d ... intensity,      "
  587.                                         
  588.                                         \ e ... Reset delay
  589.                                         \ f ... set shortest delay
  590.                                         \ g ... set longer delay
  591.                                         \ h ... set longer delay
  592.                                         \ i ... set longest delay 
  593.                                         
  594.                                         \ j ... clear screen, put cursor at 0 0
  595.                                         
  596.                                         \ k ... move cursor, next 2 bytes are x,y
  597.                                         \ l ... send prompt message to screen and wait for input
  598.                                         \ m ... output string(no format change), next 3 bytes=#chars
  599.                                         \ n ... make a computer bell
  600.                                         \ o ... execute programmed delay
  601.                                         \ p ... draw a box, next 4 bytes are ysize,xsize,row,colm
  602.                                         \ q ... switch to 1st display page
  603.                                         \ r ... switch to 2nd display page
  604.                                         \ s ... make programmed tone
  605.                                         \ t ... turn tone off
  606.                                         \ u ... make a click
  607.                                         \ v ... clr desired part of screen, 
  608.                                         \       next 4 bytes are srw,sclm,erw,eclm
  609.                                         \ X ... programmed end of program...outputs message to crt.
  610.                                         \ CR and other characters in the script 
  611.                                         \    file are disregarded
  612.                                         
  613.                                         PAGE
  614.  
  615.  
  616.  
  617. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  15
  618. DRIVER...Console out file driver
  619.  
  620.                                         
  621. 00000003 =                              CTLC    EQU     3
  622.                                         
  623. ----:1050 data                          EXIT_FLG        DSW
  624.                                         
  625. ----:1052 data                          OUTPUT_COUNT    DSW
  626.                                         
  627. 000061A8 =                              FILE_SIZE       EQU     25000
  628.                                         
  629. ----:1054 data                          SCRIPT_BUF      DSB      4000      \script buffer reservation
  630.                                         
  631. ----:1FF4 data                          FILE_BUF        DSB FILE_SIZE      \text file buffer reservation
  632.                                         
  633. 22B3/                                   : SET_EXIT  
  634. 22B3/E890DE 5010 E92EE1                         EXIT_FLG 1! ;
  635.                                         
  636.                                         \\\Programmed delay...insensitive to cpu clock speed
  637.                                         \\\Please note: FUTURE86 makes this easier than in most
  638.                                         \\\other languages..we do not need to save and then restore
  639.                                         \\\all sorts of machine status to do this
  640.                                         
  641. 22BB/0000                               DELAY_TIME      DW    0                 \variable for needed delay 
  642.                                         
  643. 00000070 =                              TIMER_INT       EQU   70H               \01CH * 4..user timer vector
  644.                                         
  645. 22BD/0000                               TIMER_COUNT     DW    0                 \counter bucket
  646.                                         
  647. 22BF/00000000                           ORIG_VECTOR     DD     0                \save loc. for orig addr
  648.                                         
  649. 22C3/                                   : TIMER_DONE                            \reset bucket
  650. 22C3/E871DE BD22 E913E1                         TIMER_COUNT 0! ;
  651.                                         
  652. 22CB/                                   : SET_ORIG_VECTOR                       \restore user vector
  653. 22CB/E869DE BF22 E85BDF                         ORIG_VECTOR D@        
  654. 22D3/E850DE 70 E929DF                           TIMER_INT  D! ;       
  655.                                         
  656.                                         \next is in assembler for low overhead during timer tick
  657. 22DA/                                   : INC_TIMER                             \this is new user code
  658. 22DA/                                   TIMER_VECTOR:                           \ref. addr label
  659. 22DA/2EFF06BD22                                         INC CS:TIMER_COUNT      \new entry point
  660. 22DF/CF                                                 IRET                    \done
  661. 22E0/C3                                                   ;
  662.                                         
  663.                                         PAGE
  664.  
  665.  
  666.  
  667. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  16
  668. DRIVER...Console out file driver
  669.  
  670.                                         
  671. 22E1/                                   : SET_NEW_VECTOR                        \install the user vector
  672. 22E1/E853DE DA22                                TIMER_VECTOR  
  673. 22E6/E83DDE 70 E916DF                           TIMER_INT D! ;
  674.                                         
  675. 22ED/                                   : SAVE_ORIG_VECTOR                      \save so we know what to put back
  676. 22ED/E836DE 70 E83ADF                           TIMER_INT  D@ 
  677. 22F4/E840DE BF22 E907DF                         ORIG_VECTOR D! ;
  678.                                         
  679. 22FC/                                   : SET_DELAY             \ n1 ---  (each # is approx 55 ms)
  680. 22FC/E838DE BB22 E8F3DE                         DELAY_TIME ! 
  681. 2304/E882DE C3                                  0 ;
  682.                                         
  683. 2308/                                   : ?TIMER_DONE           \stay here until we time out
  684. 2308/                                           BEGIN
  685. 2308/E82CDE BD22 E810DF                           TIMER_COUNT @ 
  686. 2310/E824DE BB22 E808DF                           DELAY_TIME @ 
  687. 2318/E8EDE0 E866DF                                >  DUP
  688. 231E/E854DE E306                                  IF 
  689. 2323/E8A5FF                                         SET_ORIG_VECTOR
  690. 2326/E89AFF                                         TIMER_DONE
  691. 2329/                                             THEN 
  692. 2329/E849DE E3DA C3                             UNTIL  ;
  693.                                         
  694. 232F/                                   : DELAY                         \programmable delay
  695. 232F/E805DE BB22 E8E9DE                         DELAY_TIME @ 
  696. 2337/E83BDE E306                               IF 
  697. 233C/E8A2FF                                     SET_NEW_VECTOR          \turn on timer
  698. 233F/E8C6FF                                     ?TIMER_DONE             \wait till done and continue
  699. 2342/C3                                        THEN ;    
  700.                                         
  701. 2343/                                   : INIT_TIMER                    \this saves orig vector and initializes
  702. 2343/E8A7FF                                     SAVE_ORIG_VECTOR
  703. 2346/E8EEDD BD22 E890E0                         TIMER_COUNT 0!
  704. 234E/E8E6DD BB22 E988E0                         DELAY_TIME 0! ;
  705.                                         
  706.                                         \\\PLAY THE SCALE
  707.                                         
  708. 2356/                                   : DURATION
  709. 2356/E8CDDD 03 E89FFF E844DF EBCD               3 SET_DELAY DROP DELAY ;
  710.                                         
  711. 2362/                                   : NOTE
  712. 2362/E849FF E8EEFF E92FFF                       TONE DURATION OFF ;
  713.                                                 
  714. 236B/                                   : PLAY
  715. 236B/E8B8DD 08 E843DE E8EDFF E84CDE E9..        8 DO NOTE LOOP ;
  716.                                         
  717. 237C/                                   : SCALE_DOWN
  718. 237C/E885DD 0801                                        CNAT 
  719. 2381/E880DD 2901                                        DNAT 
  720. 2386/E87BDD 4A01                                        ENAT 
  721. 238B/E876DD 6001                                        FNAT 
  722. 2390/E871DD 8C01                                        GNAT 
  723. 2395/E86CDD B801                                        ANAT 
  724. 239A/E867DD EF01                                        BNAT 
  725. 239F/E862DD 1002 C3                                     CNXT ;
  726.                                         
  727.  
  728.  
  729.  
  730. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  17
  731. DRIVER...Console out file driver
  732.  
  733. 23A5/                                   : SCALE_UP
  734. 23A5/E85CDD 1002                                        CNXT 
  735. 23AA/E857DD EF01                                        BNAT 
  736. 23AF/E852DD B801                                        ANAT 
  737. 23B4/E84DDD 8C01                                        GNAT 
  738. 23B9/E848DD 6001                                        FNAT 
  739. 23BE/E843DD 4A01                                        ENAT 
  740. 23C3/E83EDD 2901                                        DNAT 
  741. 23C8/E839DD 0801 C3                                     CNAT ;
  742.                                         
  743.                                         \if below is executed by itself..be sure to execute INIT_TIMER first
  744. 23CE/                                   : SCALE_UP/DOWN 
  745. 23CE/E8ABFF                                     SCALE_DOWN   
  746. 23D1/E8D1FF                                     SCALE_UP 
  747. 23D4/E84FDD 02                                  2 
  748. 23D8/E8DADD                                    DO
  749. 23DB/E88DFF                                     PLAY 
  750. 23DE/E8E3DD E9F7FF C3                          LOOP ;
  751.                                         
  752.                                         \the commented out code is used if just software delay is used
  753.                                         \: SET_DELAY 
  754.                                         \        DELAY_TIME ! 0 ;
  755.                                         
  756.                                         
  757.                                         \: DELAY                         \programmable delay
  758.                                         \        DELAY_TIME @ 
  759.                                         \       IF 
  760.                                         \         DELAY_TIME @ 
  761.                                         \          DO 
  762.                                         \          LOOP 
  763.                                         \       THEN ;    
  764.                                         
  765.                                         PAGE
  766.  
  767.  
  768.  
  769. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  18
  770. DRIVER...Console out file driver
  771.  
  772.                                         
  773.                                         \\\Misc. text messages 
  774. 23E5/                                   : FPRINTS+CRS
  775. 23E5/E85CFD E840FD E956FD                       FCRLF FPRINTS FCRLF ;
  776.                                         
  777. 23EE/                                   : ESC_MSG
  778. 23EE/E854E4 14 45 73 63 20 6B 65 79 20..        "Esc key depressed..." ;
  779.                                         
  780. 2407/                                   : OUTPUT_ESC_MSG
  781. 2407/E8E4FF EBD9                                ESC_MSG FPRINTS+CRS ;
  782.                                         
  783. 240C/                                   : ?USER_KEY             \test for user Esc key depress
  784. 240C/E88CEB                                     CONSTS
  785. 240F/E863DD E315                                 IF
  786. 2414/E8EBEB E80CDD 1B E8F2DF                       DCI ESCAPE =
  787. 241E/E854DD E306                                    IF
  788. 2423/E8E1FF                                            OUTPUT_ESC_MSG 
  789. 2426/E88AFE                                            SET_EXIT
  790. 2429/                                               THEN
  791. 2429/C3                                          THEN  ;
  792.                                         
  793.                                         \Output string to monitor with program. interchar delay
  794. 242A/                                   : CPRINTS                            \sinfo ---
  795. 242A/                                           BEGIN                  
  796. 242A/E836E6                                       CGET 
  797. 242D/E8FFFE E83EFC                                DELAY FCO
  798. 2433/E838E4                                       ?NULL 
  799. 2436/E843DD E203                                -IF
  800. 243B/E9ECFF C3                                  REPEAT ;
  801.                                         
  802. 243F/                                   : RETMSG
  803. 243F/E802FD E8E1DC 04 E803EC                    FCRLF 4 SPACES 
  804. 2449/E8F9E3 33 20 50 72 65 73 73 20 45..        " Press Esc key to abort or SPACE bar to continue..." 
  805. 2480/E8A4FA E8B9FA                              INTENS REVERSE 
  806. 2486/E8A2FC E88EFA                              FPRINTS NORM  
  807. 248C/E873EB                                  BEGIN DCI 
  808. 248F/E8F2DD E891DC 20 E877DF E849DE                DUP 32 = SWAP 
  809. 249C/E887DC 1B E86DDF E8DEDD                       ESCAPE = DUP 
  810. 24A6/E89DDC 5010 E849DD E889DF                     EXIT_FLG ! FOR
  811. 24B1/E8C1DC E3D6                             UNTIL 
  812. 24B6/E88DDC 5010 E862DD                          EXIT_FLG @ 
  813. 24BE/E8B4DC E306 E87EFC                      IF  FCRLF
  814. 24C6/E83EFF                                      OUTPUT_ESC_MSG 
  815. 24C9/C3                                      THEN ;
  816.                                         
  817.                                         PAGE
  818.  
  819.  
  820.  
  821. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  19
  822. DRIVER...Console out file driver
  823.  
  824.                                         
  825. 24CA/                                   : FATAL_ERROR_COND              \ ---
  826. 24CA/E877FC E820F0                              FCRLF DISPLAY_ERR_MSG 
  827. 24D0/E871FC E869FF E96EEA                       FCRLF RETMSG REBOOT ;
  828.                                                                         
  829. 24D9/                                   : TEST_ERROR                    \cond ---
  830. 24D9/E8A0DC E203                                -IF 
  831. 24DE/E8E9FF                                        FATAL_ERROR_COND
  832. 24E1/C3                                         THEN ;
  833.                                         
  834. 24E2/                                   : ?OPEN_FILE                    \ ---
  835. 24E2/E8A9EC                                     GET_ARG 
  836. 24E5/E80FF2                                     OPEN 
  837. 24E8/EBEF                                       TEST_ERROR ;
  838.                                         
  839. 24EA/                                   : OPEN_FILES
  840. 24EA/E8F5FF E8BEF7                              ?OPEN_FILE SET#1               \open text file
  841. 24F0/E8EFFF E9D0F7                              ?OPEN_FILE SET#2 ;             \open script file
  842.                                         
  843. 24F6/                                   : CLOSE_FILES                   \ ---
  844. 24F6/E89DF7 E825F4 E8A5DD                       #1 CLOSE DROP           \ignore error flags
  845. 24FF/E89CF7 E81CF4 E99CDD                       #2 CLOSE DROP ;
  846.                                         
  847. 2508/                                   : READ_TEXT_FILE                \ --- sinfo
  848. 2508/E83BDC F41F E8F4DB A861                    FILE_BUF FILE_SIZE 
  849. 2512/E881F7 E8F7F5 EBBF                         #1 READ TEST_ERROR ;
  850.                                         
  851.                                         \ --- sinfo(txt) sinfo(script) 
  852. 251A/                                   : READ_FILES
  853. 251A/E8EBFF                                      READ_TEXT_FILE
  854. 251D/E826DC 5410 E8DFDB A00F E874F7 E8..         SCRIPT_BUF 4000 #2 READ
  855. 252D/EBAA                                        TEST_ERROR ;
  856.                                         
  857.                                         PAGE
  858.  
  859.  
  860.  
  861. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  20
  862. DRIVER...Console out file driver
  863.  
  864.                                         \The next few words are examples of how much easier coding
  865.                                         \in FUTURE86 can be. The commented out (with the '\' character)
  866.                                         \definitions are coded in high level FUTURE86 and is quite efficient, 
  867.                                         \but active definitions that follow with the same names are 
  868.                                         \coded at even a higher level that really simplifies the 
  869.                                         \code and its readability.
  870.                                         
  871.                                         \: 3BYTE#                        \sinfo --- sinfo
  872.                                         \        OVER                    \get starting address of no.
  873.                                         \        3                       \string is 3 bytes long
  874.                                         \        DECIMAL-BIN             \convert to bin. no.
  875.                                         \        DROP                    \assume success, drop flag
  876.                                         \        OUTPUT_COUNT !          \save converted value to variable
  877.                                         \        SWAP                    \get original addr of string
  878.                                         \        3 +                     \push it up by no. amount
  879.                                         \        SWAP                    \put it back
  880.                                         \        3 -   ;                 \adjust string length and finished
  881.                                         
  882.                                         \get characters from string and convert to an n digit number
  883.                                         
  884. 252F/                                   : NUMBER_GET            \sinfo n1 --- sinfo n2
  885. 252F/E82BE4                                     SSPLIT 
  886. 2532/E899E7                                     DECIMAL-BIN 
  887. 2535/E844DC E226                                -IF 
  888. 253A/E8FAEA                                        CRLF 
  889. 253D/E805E3 19 49 6E 76 61 6C 69 64 20..           "Invalid number...Abort..."  \the fatal error msg
  890. 255A/E8C8EA                                        SPRINT
  891. 255D/E8E7E9                                        REBOOT       \its a fatal error...return to DOS
  892. 2560/C3                                         THEN ;
  893.                                         
  894. 2561/                                   : 3BYTE#                \sinfo --- sinfo
  895. 2561/E8C2DB 03 E8C7FF                           3 NUMBER_GET 
  896. 2568/E8DBDB 5210 E987DC                         OUTPUT_COUNT ! ;
  897.                                         
  898.                                         PAGE
  899.  
  900.  
  901.  
  902. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  21
  903. DRIVER...Console out file driver
  904.  
  905.                                         
  906.                                         \: 2_CONV
  907.                                         \        OVER 2 DECIMAL-BIN DROP ;       \subprocess for next words
  908.                                         \
  909.                                         \: TWO_ADJ                               \another subprocess
  910.                                         \        SWAP 2+ SWAP 2 - ;
  911.                                         
  912.                                         \: TWO_2CHR#                    \sinfo --- sinfo  row colm
  913.                                         \        2_CONV
  914.                                         \        >R                      \save in return stack
  915.                                         \        TWO_ADJ                 \adjust string addr
  916.                                         \        \1st byte finished
  917.                                         \        2_CONV
  918.                                         \        >R
  919.                                         \        TWO_ADJ
  920.                                         \        R> R>                   \get nos. back to stack
  921.                                         \        SWAP   ;                \put them in correct order and done
  922.                                         \
  923.                                         
  924. 2570/                                   : 2CHR#                 \sinfo --- sinfo n1 
  925. 2570/E8B3DB 02 EBB9                             2 NUMBER_GET ; 
  926.                                         
  927. 2576/                                   : TWO_2CHR#            \sinfo --- sinfo n1 n2
  928. 2576/E8F7FF E8BCDD                              2CHR# >R 
  929. 257C/E8F1FF E8C2DD E960DD                       2CHR# R> SWAP ;
  930.                                         
  931.                                         PAGE
  932.  
  933.  
  934.  
  935. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  22
  936. DRIVER...Console out file driver
  937.  
  938.                                         
  939.                                         \: FOUR.NUMBERS                  \sinfo --- sinfo sr sc er ec
  940.                                         \        2_CONV
  941.                                         \        >R
  942.                                         \        TWO_ADJ
  943.                                         \        \1st byte
  944.                                         \        2_CONV
  945.                                         \        >R
  946.                                         \        TWO_ADJ
  947.                                         \        \2nd byte
  948.                                         \        2_CONV
  949.                                         \        >R
  950.                                         \        TWO_ADJ
  951.                                         \        \3rd byte
  952.                                         \        2_CONV
  953.                                         \        >R
  954.                                         \        TWO_ADJ
  955.                                         \        \4th byte
  956.                                         \        R> R> R> R>             \get data back to stack
  957.                                         \        SWAP                    \reorder values
  958.                                         \        DSWAP
  959.                                         \        SWAP ;
  960.                                         
  961.                                         \define temp no. storage
  962. ----:819C data                          NUM1    DSW           
  963. ----:819E data                          NUM2    DSW
  964. ----:81A0 data                          NUM3    DSW
  965. ----:81A2 data                          NUM4    DSW
  966.                                         
  967. 2585/                                   : FOUR.NUMBERS          \sinfo --- sinfo n1 n2 n3 n4
  968. 2585/E8E8FF E8BBDB 9C81 E867DC                  2CHR#  NUM1 !   \get 1st no
  969. 2590/E8DDFF E8B0DB 9E81 E85CDC                  2CHR#  NUM2 !   \2nd no
  970. 259B/E8D2FF E8A5DB A081 E851DC                  2CHR#  NUM3 !   \3rd no
  971. 25A6/E8C7FF E89ADB A281 E846DC                  2CHR#  NUM4 !   \4th no
  972. 25B1/E892DB 9C81 E867DC                                NUM1 @   \put result nos. on stack
  973. 25B9/E88ADB 9E81 E85FDC                                NUM2 @ 
  974. 25C1/E882DB A081 E857DC                                NUM3 @ 
  975. 25C9/E87ADB A281 E94FDC                                NUM4 @ ;
  976.                                         
  977. 25D1/                                   : NO_TEXT_MSG
  978. 25D1/E871E2 0E 54 65 78 74 20 65 78 68..        "Text exhausted"
  979. 25E3/E9FFFD                                     FPRINTS+CRS ;
  980.                                         
  981. 25E6/                                   : PROGRAMMED_END                \for debug
  982. 25E6/E85CE2 18 50 72 6F 67 72 61 6D 6D..        "Programmed end of text.."
  983. 2602/E9E0FD                                     FPRINTS+CRS ;
  984.                                         
  985.                                         PAGE
  986.  
  987.  
  988.  
  989. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  23
  990. DRIVER...Console out file driver
  991.  
  992.                                         
  993. 2605/                                   : NORMZ                              \ --- flg
  994. 2605/E812F9 E856FF E85ADB C3                    NORM 3BYTE# 1 ;
  995.                                         
  996. 260F/                                   : REVERSEZ                           \ --- flg
  997. 260F/E82DF9 E84CFF E850DB C3                    REVERSE 3BYTE# 1 ;
  998.                                         
  999. 2619/                                   : BLINKZ                             \ --- flg
  1000. 2619/E817F9 E842FF E846DB C3                    BLINK 3BYTE# 1 ;
  1001.                                         
  1002. 2623/                                   : INTENSZ                            \ --- flg
  1003. 2623/E801F9 E838FF E83CDB C3                    INTENS 3BYTE# 1 ;
  1004.                                         
  1005. 262D/                                   : SDELAY1                            \ --- flg
  1006. 262D/E838DB E9C9FC                              1 SET_DELAY ;
  1007.                                         
  1008. 2633/                                   : SDELAY2                            \ --- flg
  1009. 2633/E8F0DA 02 E9C2FC                           2 SET_DELAY ;
  1010.                                         
  1011. 263A/                                   : SDELAY3                            \ --- flg
  1012. 263A/E8E9DA 08 E9BBFC                           8 SET_DELAY ;
  1013.                                         
  1014. 2641/                                   : SDELAY4                            \ --- flg
  1015. 2641/E8E2DA 0A E9B4FC                           10 SET_DELAY ;
  1016.                                         
  1017. 2648/                                   : RESET_DELAY                        \ --- flg
  1018. 2648/E83EDB E9AEFC                              0  SET_DELAY ;
  1019.                                         
  1020. 264E/                                   : CLSZ                               \ --- flg
  1021. 264E/E8E9F9 E835DB C3                           CLS 0 ;
  1022.                                         
  1023. 2655/                                   : >CURSOR                            \ --- flg 
  1024. 2655/E81EFF                                     TWO_2CHR# 
  1025. 2658/E835F9 E82BDB C3                           PUT_CURS 0 ;
  1026.                                         
  1027. 265F/                                   : RETMSGZ                            \ --- flg
  1028. 265F/E8DDFD E824DB C3                           RETMSG 0 ;
  1029.                                         
  1030. 2666/                                   : LENGTH                             \ --- flg
  1031. 2666/E8F8FE E8FCDA C3                           3BYTE# 1 ;
  1032.                                         
  1033. 266D/                                   : BELZ                               \ --- flg
  1034. 266D/E8CFF9 E816DB C3                           BEL 0 ;
  1035.                                         
  1036. 2674/                                   : DO_DELAY                           \ --- flg
  1037. 2674/E8B8FC E80FDB C3                           DELAY 0 ;
  1038.                                         
  1039.                                         PAGE
  1040.  
  1041.  
  1042.  
  1043. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  24
  1044. DRIVER...Console out file driver
  1045.  
  1046.                                         
  1047. 267B/                                   : BOXZ                        \draw box from script entry
  1048. 267B/E8F8FE E8B7DC E8B4DC                       TWO_2CHR#  >R >R 
  1049. 2684/E8EFFE E8BADC E8B7DC                       TWO_2CHR#  R> R>
  1050. 268D/E864DF                                     SSWAP
  1051. 2690/E8A1FB E8F3DA C3                           BOX   0  ;
  1052.                                         
  1053. 2697/                                   : 1ST_PAGE                      \switch to page #1 --- flg
  1054. 2697/E8EFDA E8EAF8 E8E9DA C3                    0 SET_PAGE# 0 ;
  1055.                                         
  1056. 26A1/                                   : 2ND_PAGE                      \switch to page #2 (CGA only) --- flg
  1057. 26A1/E8C4DA E8E0F8 E8DFDA C3                    1 SET_PAGE# 0 ;
  1058.                                         
  1059. 26AB/                                   : TONE_ON                       \ --- flg
  1060. 26AB/E8B3FE                                     3BYTE# 
  1061. 26AE/E895DA 5210 E86ADB                         OUTPUT_COUNT @ 
  1062. 26B6/E9F5FB                                     TONE  ;
  1063.                                         
  1064. 26B9/                                   : TONE_ON_0                     \ --- flg
  1065. 26B9/E8EFFF E8CADA C3                           TONE_ON 0 ;
  1066.                                         
  1067. 26C0/                                   : TONE_OFF                      \ --- flg
  1068. 26C0/E8D7FB E8C3DA C3                           OFF 0 ;
  1069.                                         
  1070. 26C7/                                   : TONE_BURST                     \ --- flg
  1071. 26C7/E8E1FF                                     TONE_ON                  \freq, in cps
  1072. 26CA/E859DA C8                                  200                      \wait for awhile..timer tick
  1073. 26CE/E8E4DA                                      DO                      \is too slow, so use empty loop
  1074. 26D1/E8F0DA E9FAFF                               LOOP                    \AT machines will be higer pitched
  1075. 26D7/EBE7                                       TONE_OFF  ;
  1076.                                         
  1077.                                         \clear desired screen area
  1078. 26D9/                                   : CLR_SOME                      \ --- flg
  1079. 26D9/E8A9FE                                     FOUR.NUMBERS 
  1080. 26DC/E8EBF8 E8A7DA C3                           CLR 0 ;
  1081.                                         
  1082. 26E3/                                   : TXT_END                       \script says this is end
  1083. 26E3/E800FF                                     PROGRAMMED_END 
  1084. 26E6/E8CAFB E89DDA C3                           SET_EXIT 0 ;
  1085.                                         
  1086.                                         PAGE
  1087.  
  1088.  
  1089.  
  1090. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  25
  1091. DRIVER...Console out file driver
  1092.  
  1093.                                         
  1094. 26ED/                                   : SCRIPT_ACTION         \perform proper action according to script 
  1095.                                                                 \file character.    ---
  1096. 26ED/E8CEDE EB60                                CASE
  1097. 26F2/6100 0526                                  'a' NORMZ               \normal output
  1098. 26F6/6200 0F26                                  'b' REVERSEZ            \reverse video
  1099. 26FA/6300 1926                                  'c' BLINKZ              \blink video
  1100. 26FE/6400 2326                                  'd' INTENSZ             \hi intensity video
  1101.                                                   \
  1102. 2702/6500 4826                                  'e' RESET_DELAY         \no inter char delay
  1103.                                                  \                      
  1104. 2706/6600 2D26                                  'f' SDELAY1             \shortest delay
  1105. 270A/6700 3326                                  'g' SDELAY2             \longer delay
  1106. 270E/6800 3A26                                  'h' SDELAY3             \yet longer delay
  1107. 2712/6900 4126                                  'i' SDELAY4             \longest delay
  1108.                                                   \
  1109. 2716/6A00 4E26                                  'j' CLSZ                \clear screen & home
  1110. 271A/6B00 5526                                  'k' >CURSOR             \move cursor
  1111. 271E/6C00 5F26                                  'l' RETMSGZ             \halt and wait for prompted input
  1112. 2722/6D00 6626                                  'm' LENGTH              \output a string of char
  1113. 2726/6E00 6D26                                  'n' BELZ                \make a bel
  1114. 272A/6F00 7426                                  'o' DO_DELAY            \execute programmed delay
  1115. 272E/7000 7B26                                  'p' BOXZ                \draw a box
  1116. 2732/7100 9726                                  'q' 1ST_PAGE            \switch to disp. page#1
  1117. 2736/7200 A126                                  'r' 2ND_PAGE            \switch to disp. page#2
  1118. 273A/7300 B926                                  's' TONE_ON_0           \make programmed tone
  1119. 273E/7400 C026                                  't' TONE_OFF            \turn tone off
  1120. 2742/7500 C726                                  'u' TONE_BURST          \tone on/off
  1121. 2746/7600 D926                                  'v' CLR_SOME            \clr desired part of screen
  1122. 274A/5800 E326                                  'X' TXT_END             \this is the end of script cmmd.
  1123.                                                   \
  1124. 274E/EEEE 8901                                  NOCASE     $$FALSE   
  1125. 2752/E98EDA                                     ENDCASE    EXECUTE ;
  1126.                                         PAGE
  1127.  
  1128.  
  1129.  
  1130. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  26
  1131. DRIVER...Console out file driver
  1132.  
  1133.                                         
  1134. 2755/                                   : ?TXT_LEN              \n1 n2 n3 --- n1 n2 n3 n1
  1135. 2755/E8CED9 03 E9ABDB                           3 PICK ;
  1136.                                         
  1137. 275C/                                   : SMALLEST_LEN         \ --- n1
  1138. 275C/E8E7D9 5210 E8BCDA                         OUTPUT_COUNT @
  1139. 2764/E8EEFF E9A2DD                              ?TXT_LEN  MIN ;
  1140.                                         
  1141.                                         \sinfo(txt) sinfo(scrpt) flg --- sinfo(txt) sinfo(scrpt)
  1142. 276A/                                   : OUTPUT_TEXT 
  1143. 276A/E808DA E34A                              IF                                \output text if flg is 1
  1144. 276F/E882DE                                     SSWAP                           \exchange sinfos
  1145. 2772/E81FDB                                     OVER                            \get addr..sinfo underneath
  1146. 2775/E8E4FF                                     SMALLEST_LEN                    \select smallest len
  1147. 2778/E8BDDB E899DB                              >R I                            \save in ret. stk
  1148. 277E/E8A9FC                                     CPRINTS                         \output sinfo text
  1149. 2781/E893DB E8E0DB                              I -                             \
  1150. 2787/E88DDB E820DC                              I +2ND                          \
  1151. 278D/E864DE                                     SSWAP                           \exchange sinfos
  1152. 2790/E8B3D9 5210 E888DA                         OUTPUT_COUNT @                  \see if len is different
  1153. 2798/E8A9DB                                     R>                              \
  1154. 279B/E8F3DA E867DC                              DDUP >                          \
  1155. 27A1/E8D1D9 E305 E8BEDB                        IF -                            \if so set count = 0
  1156. 27A9/EB06 E8F3DA E8D8D9                        ELSE DDROP 0 
  1157. 27B1/E892D9 5210 E83EDA                        THEN OUTPUT_COUNT ! 
  1158. 27B9/C3                                       THEN  ;
  1159.                                         
  1160. 27BA/                                   : ?NEW_TXT                              \refresh txt buf?
  1161. 27BA/E8A3DE                                     DROP3RD/4TH
  1162. 27BD/E848FD                                     READ_TEXT_FILE 
  1163. 27C0/E892FF                                     ?TXT_LEN
  1164. 27C3/E880D9 5210 E855DA E83ADC                  OUTPUT_COUNT @ >
  1165. 27CE/E8A4D9 E319                                IF
  1166. 27D3/E870D9 5210 E845DA                            OUTPUT_COUNT @ 
  1167. 27DB/E88CFF                                        OUTPUT_TEXT 
  1168. 27DE/E813DE                                        SSWAP 
  1169. 27E1/E871FF                                        ?TXT_LEN                     
  1170. 27E4/E89DD9                                         0=
  1171. 27E7/E822FC                                        ?USER_KEY
  1172. 27EA/EB06                                       ELSE  
  1173. 27EC/E8E2FD E876D9                                 NO_TEXT_MSG  1  
  1174. 27F2/C3                                         THEN ;
  1175.                                         
  1176. 27F3/                                   : ?TXT_DONE                           \ --- flg
  1177. 27F3/E85FFF                                       ?TXT_LEN                    \remaining text len
  1178. 27F6/E883D9 E205                                -IF                           \test if len = 0
  1179. 27FB/                                   brk1:                                 \label for FDT86 debugger 
  1180. 27FB/E8BCFF                                       ?NEW_TXT                    \refresh text buf?
  1181. 27FE/EB03 E886D9                                ELSE  0                       \else nothing
  1182. 2803/C3                                         THEN ;
  1183.                                         
  1184.                                         PAGE
  1185.  
  1186.  
  1187.  
  1188. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  27
  1189. DRIVER...Console out file driver
  1190.  
  1191.                                         
  1192. 2804/                                   : PROCESS_TXT_INTERVAL               \sinfo(txt) sinfo(scrpt) ---
  1193. 2804/E85CE2                                     CGET                         \get script char
  1194. 2807/E8E3FE                                     SCRIPT_ACTION                \perform the script action
  1195. 280A/E95DFF                                     OUTPUT_TEXT  ;               \output text according 
  1196.                                                                              \to script control
  1197.                                         
  1198. 280D/                                   : SCRIPT_DONE                        \ ---
  1199. 280D/E835E0 10 53 63 72 69 70 74 20 65..        "Script exhausted" 
  1200. 2821/E8C1FB                                     FPRINTS+CRS 
  1201. 2824/E98CFA                                     SET_EXIT ;
  1202.                                         
  1203. 2827/                                   : EXECUTE_ONE_SCRIPT            \get a script & execute it
  1204. 2827/E85ADA                                     SLEN 
  1205. 282A/E848D9 E305                              IF
  1206. 282F/E8D2FF                                     PROCESS_TXT_INTERVAL
  1207. 2832/EB03 E8D6FF                              ELSE SCRIPT_DONE
  1208. 2837/C3                                       THEN ;
  1209.                                         
  1210. 2838/                                   : ?END_PROCESS
  1211. 2838/E8B8FF                                     ?TXT_DONE                 \text file exhausted?
  1212. 283B/E808D9 5010 E8DDD9                         EXIT_FLG @                \user or other exit?
  1213. 2843/E9F4DB                                     FOR  ;                    \either condition?
  1214.                                         
  1215. 2846/                                   : PROCESS_ALL_TXT                 \sinfo(txt) sinfo(scrpt) ---
  1216. 2846/                                           BEGIN
  1217. 2846/E8DEFF                                        EXECUTE_ONE_SCRIPT     \output one text segment
  1218. 2849/E8ECFF                                        ?END_PROCESS           \is there more?
  1219. 284C/E826D9 E3F5                                UNTIL 
  1220. 2851/E84DDA E94ADA                              SDROP SDROP ;             \throw away all sinfo
  1221.                                         
  1222. 2857/1004                               EQUIPMENT  DW   0:410H            \DOS equipment addr
  1223.                                         
  1224. 2859/                                   : SET_CGA/MONO                    \ensure correct crt mode; ---
  1225. 2859/E8DBD8 5728 E8BFD9                         EQUIPMENT @ 
  1226. 2861/E8C2D8 30 E8C8DB                           30H FAND 
  1227. 2868/E8BBD8 30 E8A1DB                           30H = 
  1228. 286F/E803D9 E306 E8AFD8 07                   IF 80x25_MONO  
  1229. 2878/EB04 E8A9D8 02                          ELSE 80x25_BW  
  1230. 287E/                                        THEN 
  1231. 287E/E9F4F6                                     SET_VIDEO_MODE ;
  1232.                                         
  1233. 2881/                                   : INIT                  \intialize variables, screen etc..
  1234. 2881/E8BFFA                                     INIT_TIMER      \save int vector addresses
  1235. 2884/E8D2FF                                     SET_CGA/MONO    \make sure screen is compatible
  1236. 2887/E80DFE E817DA                              1ST_PAGE DROP   \make sure first display page
  1237. 288D/E8B6D8 5010 E949DB                         EXIT_FLG 0! ;   \clear exit flag
  1238.                                                 
  1239.                                         
  1240.                                         PAGE
  1241.  
  1242.  
  1243.  
  1244. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  28
  1245. DRIVER...Console out file driver
  1246.  
  1247.                                         
  1248.                                         \DOS level command to run this application is:
  1249.                                         \DRIVER DEMO.TXT  SCRIPT.SCR<cr>
  1250.                                         \Batfile command is: RUNDEMO
  1251.                                         \MAIN is entry point and top application word
  1252.                                         
  1253. 2895/                                   : MAIN                          \type demo.txt under control
  1254.                                                                         \of the script file
  1255. 2895/E8E9FF                                     INIT                    \reset exit
  1256. 2898/E84FFC                                     OPEN_FILES              \open text & script files
  1257. 289B/E87CFC                                     READ_FILES
  1258. 289E/E8A5FF                                     PROCESS_ALL_TXT         \output formatted text 'til
  1259. 28A1/E852FC                                     CLOSE_FILES             \exhausted..back to DOS..
  1260. 28A4/E927FB                                     SCALE_UP/DOWN    ;      \wind up w/ the scales
  1261.                                         
  1262.                                         \This is the application end. We hope you can see how
  1263.                                         \powerful and easy FUTURE86 can make your projects...
  1264.                                         
  1265. 28A7/BB 1B08 E816EA E8E5FF E994E6 E9A4..END     MAIN
  1266.  
  1267.  
  1268.  
  1269. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  29
  1270. DRIVER...Console out file driver
  1271.  
  1272.              ***************** SYMBOL TABLE DUMP *****************
  1273.  
  1274. !             F ----:01F7  !AH           F ----:0D68  !AL           F ----:0D70  !AX           F ----:0D60
  1275. !BH           F ----:0D80  !BL           F ----:0D88  !BX           F ----:0D78  !CH           F ----:0D98
  1276. !CL           F ----:0DA0  !CX           F ----:0D90  !DH           F ----:0DB0  !DI           F ----:0DC8
  1277. !DL           F ----:0DB8  !DS           F ----:0DD0  !DS+DX        F ----:0DE0  !DS+SI        F ----:0DF0
  1278. !DX           F ----:0DA8  !ES           F ----:0DD8  !ES+BX        F ----:0DE8  !ES+DI        F ----:0DF8
  1279. !FH           F ----:1549  !I            F ----:0796  !J            F ----:07A9  !K            F ----:07AE
  1280. !L            F ----:07B3  !SI           F ----:0DC0  #1            F ----:1C96  #2            F ----:1C9E
  1281. #3            F ----:1CA6  $$-IF         F ----:01A7  $$BLITERAL    F ----:0126  $$CASE        F ----:05BE
  1282. $$CSLITERAL   F ----:0137  $$DO          F ----:01B5  $$DSLITERAL   F ----:0146  $$FALSE       F ----:0189
  1283. $$FSLITERAL   F ----:0155  $$IF          F ----:0195  $$KV             00000043  $$LITERAL     F ----:0104
  1284. $$LOOP        F ----:01C4  $$MLITERAL    F ----:0115  $$POPCX       F ----:0175  $$POPCX+1     F ----:017C
  1285. $$RETF        F ----:0103  $$SELECT      F ----:05E0  $$SLITERAL    F ----:0845  $$TRUE        F ----:0168
  1286. *             F ----:0380  +             F ----:035D  +!            F ----:03A1  +2ND          F ----:03AD
  1287. +CLEFT        F ----:0A9D  +CSEG         F ----:068C  +DSEG         F ----:0690  +HEXLEFT      F ----:0AB5
  1288. +SEG          F ----:0682  +SLEFT        F ----:0ADB  -             F ----:0367  -0RET;        F ----:057E
  1289. -BLINK        F ----:1F39  -DDROP0RET;   F ----:05AF  -DDROPRET;    F ----:056B  -DROP0RET;    F ----:0596
  1290. -DROPRET;     F ----:055F  -INTENS       F ----:1F2D  -RET;         F ----:054D  -REVERSE      F ----:1F4C
  1291. -ROT          F ----:02CD  /             F ----:04DD  /MOD          F ----:038F  0!            F ----:03DE
  1292. 0<            F ----:0429  0<>           F ----:0424  0=            F ----:0184  0B!           F ----:04E3
  1293. 0BFILL        F ----:0534  0RET;         F ----:0577  1!            F ----:03E9  1+            F ----:0374
  1294. 1+!           F ----:03BB  1+2ND         F ----:03B7  1+@           F ----:03C4  1+I           F ----:0350
  1295. 1-            F ----:0378  1-!           F ----:03D5  1B!           F ----:04EC  1ST_PAGE      F ----:2697
  1296. 2*            F ----:037C  2+            F ----:0371  20X25_COLOR      00000001  2CHR#         F ----:2570
  1297. 2CLEFT        F ----:0A1C  2DUP          F ----:027A  2ND_PAGE      F ----:26A1  320X200_BW       00000004
  1298. 320X200_COLOR    00000003  320X200_GRAPH    00000005  3BYTE#        F ----:2561  40X25_BW         00000000
  1299. 640X200_GRAPH    00000006  80X25_BW         00000002  80X25_MONO       00000007  <             F ----:03F4
  1300. <=            F ----:053D  <>            F ----:041E  =             F ----:0410  >             F ----:0408
  1301. >=            F ----:0543  >CURSOR       F ----:2655  >R            F ----:0338  ?             F ----:105F
  1302. ?CARRY        F ----:0EAC  ?CXZ          P ----:0187  ?DUP          F ----:027F  ?END_PROCESS  F ----:2838
  1303. ?EXTENDED_COD F ----:100B  ?NEW_TXT      F ----:27BA  ?NULL         F ----:086E  ?NULL0        F ----:087C
  1304. ?OPEN_FILE    F ----:24E2  ?PAGE#        F ----:1F7D  ?TIMER_DONE   F ----:2308  ?TXT_DONE     F ----:27F3
  1305. ?TXT_LEN      F ----:2755  ?USER_KEY     F ----:240C  ?WGET         F ----:09EE  ?ZERO         F ----:0EB5
  1306. ?ZF           P ----:0166  @             F ----:0220  @AH           F ----:0E08  @AL           F ----:0E10
  1307. @AX           F ----:0E00  @BH           F ----:0E20  @BL           F ----:0E28  @BX           F ----:0E18
  1308. @CH           F ----:0E38  @CL           F ----:0E40  @CX           F ----:0E30  @DH           F ----:0E50
  1309. @DI           F ----:0E68  @DL           F ----:0E58  @DS           F ----:0E70  @DS+DX        F ----:0E80
  1310. @DS+SI        F ----:0E92  @DX           F ----:0E48  @ES           F ----:0E78  @ES+BX        F ----:0E89
  1311. @ES+DI        F ----:0E9B  @FL           F ----:0EA4  @PNTR_ON_DS   F ----:0694  @SI           F ----:0E60
  1312. ABS           F ----:04FD  ANAT             000001B8  ARG           F ----:1172  ARRAY!        F ----:024B
  1313. ARRAY@        F ----:0266  ARRAYB!       F ----:0244  ARRAYB@       F ----:025F  ARRAYD!       F ----:0254
  1314. ARRAYD@       F ----:026F  B!            F ----:01EB  B@            F ----:0212  BACK_UP       F ----:213D
  1315. BEL           F ----:203F  BELZ          F ----:266D  BFILL         F ----:04B2  BIN-DECIMAL   F ----:0BF1
  1316. BIN-HEXB      F ----:0C3C  BIN-HEXD      F ----:0C48  BIN-HEXN      F ----:0C37  BIN-HEXW      F ----:0C42
  1317. BLACK         F ----:1F59  BLINK         F ----:1F33  BLINKZ        F ----:2619  BMOVE         F ----:04C2
  1318. BNAT             000001EF  BOT_LINE      F ----:222A  BOX           F ----:2234  BOXZ          F ----:267B
  1319. BRK1          P ----:27FB  C+            F ----:0923  CANCEL_FILE_B F ----:1639  CGET          F ----:0A63
  1320. CHK0-9        F ----:0C83  CHK0-F        F ----:0C5D  CI            F ----:0FAB  CLEFT         F ----:0A08
  1321. CLOSE         F ----:1921  CLOSE_FILES   F ----:24F6  CLR           F ----:1FCA  CLR_ERR_MSG   F ----:14E0
  1322. CLR_SCREEN    F ----:202A  CLR_SOME      F ----:26D9  CLS           F ----:203A  CLSZ          F ----:264E
  1323. CNAT             00000108  CNXT             00000210  CO            F ----:0FB4  CODE_BASE     P ----:0000
  1324. CODE_SIZE       ----:129F  CONSTS        F ----:0F9B  COUNT_CHR     F ----:09C1  CPRINTS       F ----:242A
  1325. CREATE        F ----:1667  CRIGHT        F ----:0A49  CRLF          F ----:1037  CRS           F ----:2152
  1326. CRTATR          ----:1EF2  CSEARCH       F ----:0A73  CSEG          F ----:066A  CSPLIT        F ----:0975
  1327. CTLC             00000003  CUPPER        F ----:0B09  CUR_DRIVE     F ----:1E70  D!            F ----:0203
  1328. D*            F ----:07B8  D+            F ----:06A9  D-            F ----:06D2  D/            F ----:083F
  1329.  
  1330.  
  1331.  
  1332. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  30
  1333. DRIVER...Console out file driver
  1334.  
  1335. D/MOD         F ----:07F4  D0=           F ----:0773  D10*          F ----:075D  D=            F ----:0770
  1336. D>R           F ----:060E  D@            F ----:022E  DAND          F ----:071D  DATA_BASE       ----:0000
  1337. DATA_SIZE       ----:12A1  DCI           F ----:1002  DCO           F ----:101B  DCOM          F ----:074D
  1338. DCONSTS       F ----:0FE0  DDROP         F ----:02A1  DDROP0RET;    F ----:05A5  DDUP          F ----:0291
  1339. DECIMAL-BIN   F ----:0CCE  DELAY         F ----:232F  DELAY_TIME      ----:22BB  DELETE        F ----:1DD3
  1340. DIRECTORY_BUF   ----:101E  DISABLE_CTL-C F ----:0F54  DISPLAY_ERR_M F ----:14F0  DMIN          F ----:077C
  1341. DMOD          F ----:0839  DNAT             00000129  DNEGATE       F ----:0754  DO_DELAY      F ----:2674
  1342. DOR           F ----:072D  DOVER         F ----:0600  DRAW          F ----:215F  DRDROP        F ----:064E
  1343. DROP          F ----:02A4  DROP_SPACER   F ----:09A3  DROP2ND       F ----:02A8  DROP2ND/3RD   F ----:0656
  1344. DROP3RD/4TH   F ----:0660  DSEG          F ----:0676  DSL           F ----:06FC  DSR           F ----:0717
  1345. DSWAP         F ----:05F4  DUMMY               macro  DUP           F ----:0284  DURATION      F ----:2356
  1346. DXOR          F ----:073D  EMGCY_REBOOT  F ----:0F4C  ENABLE_CTL-C  F ----:0F76  ENAT             0000014A
  1347. EQUIPMENT       ----:2857  ERR_MSG       F ----:14D8  ESC_MSG       F ----:23EE  ESCAPE           0000001B
  1348. EXEC          F ----:1336  EXEC_COMMAND  F ----:14BF  EXEC_COMMAND_ F ----:14B6  EXECUTE       F ----:01E3
  1349. EXECUTE_ONE_S F ----:2827  EXIT          F ----:035A  EXIT_FLG        ----:1050  FAND          F ----:0430
  1350. FATAL_ERROR_C F ----:24CA  FCO           F ----:2071  FCOM          F ----:04F5  FCRLF         F ----:2144
  1351. FDI           F ----:04D3  FEI           F ----:04D5  FH            F ----:1583  FILE_BUF        ----:1FF4
  1352. FILE_SIZE        000061A8  FIN           F ----:049D  FLUSH         F ----:18E1  FNAT             00000160
  1353. FNOP          F ----:04D2  FNOT          F ----:0184  FOR           F ----:043A  FOUR.NUMBERS  F ----:2585
  1354. FOUT          F ----:04A7  FPRINTS       F ----:212B  FPRINTS+CRS   F ----:23E5  FREE_MEMORY   F ----:11BA
  1355. FREQ          F ----:224F  FSIZE         F ----:1EB9  FXOR          F ----:0444  GET_ARG       F ----:118E
  1356. GET_ATR       F ----:1EF3  GET_CURS      F ----:1FA2  GET_ENVIRONME F ----:1417  GET_MAXIMUM_M F ----:120D
  1357. GET_MEMORY    F ----:11EC  GETSI         F ----:0865  GNAT             0000018C  H_BIT         F ----:2182
  1358. HEX-BIN       F ----:0CF5  HLINE         F ----:2190  HOME          F ----:1FB8  I             F ----:0317
  1359. IF0RET;       F ----:058A  IFRET;        F ----:0556  IJ            F ----:0634  INC_TIMER     F ----:22DA
  1360. INIT          F ----:2881  INIT_TIMER    F ----:2343  INPUTBUFFER     ----:027A  INT_10H       F ----:1F65
  1361. INT_21H       F ----:0F39  INTENS        F ----:1F27  INTENSZ       F ----:2623  J             F ----:0329
  1362. K             F ----:032E  KERNELSIZE       00000004  L             F ----:0333  LASTDATA      F ----:12FE
  1363. LCRLF         F ----:10CF  LEAVE         F ----:01DA  LENGTH        F ----:2666  LF            F ----:217B
  1364. LIMIT         F ----:21CA  LLCORN           000000C0  LO            F ----:10B3  LONGLOOP         00000001
  1365. LONGREPEAT       00000001  LPRINT        F ----:10BD  LRCORN           000000D9  LSPACE        F ----:10DC
  1366. LSPACES       F ----:10E2  LVERT_LINE    F ----:2217  MACRO2           00000000  MAIN          F ----:2895
  1367. MAX           F ----:0520  MIN           F ----:050C  MOD           F ----:04D7  MODIFY_MEMORY F ----:128A
  1368. MOVE_FILE_POI F ----:1D97  NEGATE        F ----:04F9  NINPUT        F ----:1121  NINPUT+ERR    F ----:111B
  1369. NO_TEXT_MSG   F ----:25D1  NOCASE           0000EEEE  NORM          F ----:1F1A  NORMZ         F ----:2605
  1370. NOTE          F ----:2362  NPRINT        F ----:1070  NULL          F ----:085E  NUM1            ----:819C
  1371. NUM2            ----:819E  NUM3            ----:81A0  NUM4            ----:81A2  NUMBER_GET    F ----:252F
  1372. OFF           F ----:229A  OPEN          F ----:16F7  OPEN_FILES    F ----:24EA  ORIG_VECTOR     ----:22BF
  1373. OUTPUT_COUNT    ----:1052  OUTPUT_ESC_MS F ----:2407  OUTPUT_TEXT   F ----:276A  OUTPUTBUFFER    ----:0182
  1374. OVER          F ----:0294  PACK          F ----:047B  PAGE#           0000:0462  PICK          F ----:0307
  1375. PLAY          F ----:236B  POPAX               macro  POPAX&DS            macro  POPBX               macro
  1376. POPBX&DS            macro  POPBX&DS/READ P ----:023A  POPCX               macro  POPDI               macro
  1377. POPDX               macro  POPES               macro  POPSI               macro  POPSI&DS            macro
  1378. PRB           F ----:1091  PRD           F ----:109B  PRN           F ----:108C  PROCESS_ALL_T F ----:2846
  1379. PROCESS_TXT_I F ----:2804  PROGRAMMED_EN F ----:25E6  PRSP          F ----:10A0  PRTB             00000061
  1380. PRW           F ----:1096  PSTACK_BASE     ----:0100  PUSHAX              macro  PUSHAX&0            macro
  1381. PUSHAX&DS           macro  PUSHBX              macro  PUSHCX              macro  PUSHDI              macro
  1382. PUSHDX              macro  PUSHES              macro  PUSHSI              macro  PUT_CURS      F ----:1F90
  1383. QDUP          F ----:0651  R>            F ----:0344  R>D           F ----:061E  R>S           F ----:061E
  1384. RDROP         F ----:0357  READ          F ----:1B0F  READ_1CHR     F ----:19A9  READ_1LINE    F ----:1A5E
  1385. READ_CHAR/AT  F ----:1FEE  READ_FILES    F ----:251A  READ_TEXT_FIL F ----:2508  READAX              macro
  1386. READAX&DS           macro  READBX              macro  READBX&DS           macro  REBOOT        F ----:0F47
  1387. REBOOT+       F ----:0F3E  RENAME        F ----:1E03  RESET_DELAY   F ----:2648  RESTORE_INT_N F ----:0F33
  1388. RET;          F ----:0549  RETMSG        F ----:243F  RETMSGZ       F ----:265F  REVERSE       F ----:1F3F
  1389. REVERSEZ      F ----:260F  ROT           F ----:02B5  RSTACK_BASE     ----:0180  RVERT_LINE    F ----:220E
  1390. S!            F ----:091D  S+            F ----:0938  S-C           F ----:09F7  S=            F ----:0882
  1391. S>R           F ----:060E  S@            F ----:0865  SAVE_ORIG_VEC F ----:22ED  SAVEIT          ----:2242
  1392.  
  1393.  
  1394.  
  1395. FUTURE86 Compile List    DRIVER.PRN(4-24-1987  8:18AM)                                                         page  31
  1396. DRIVER...Console out file driver
  1397.  
  1398. SCALE            000004C5  SCALE_DOWN    F ----:237C  SCALE_UP      F ----:23A5  SCALE_UP/DOWN F ----:23CE
  1399. SCOPY         F ----:08F2  SCREENSIZE      ----:1EF0  SCRIPT_ACTION F ----:26ED  SCRIPT_BUF      ----:1054
  1400. SCRIPT_DONE   F ----:280D  SCROLL_UP_LIN F ----:2046  SCROLL_UP_ONE F ----:206C  SDELAY1       F ----:262D
  1401. SDELAY2       F ----:2633  SDELAY3       F ----:263A  SDELAY4       F ----:2641  SDROP         F ----:02A1
  1402. SDUP          F ----:0291  SEARCH_DIRECT F ----:1E84  SEARCH_DIRECT F ----:1EAC  SEL_DRIVE     F ----:1E7A
  1403. SEP           F ----:2171  SET_CGA/MONO  F ----:2859  SET_DELAY     F ----:22FC  SET_ERR_MSG   F ----:14E8
  1404. SET_EXIT      F ----:22B3  SET_FILE_BUFF F ----:1615  SET_FILE_POIN F ----:1D81  SET_INT_NO    F ----:0F2B
  1405. SET_NEW_FILE_ F ----:1DBD  SET_NEW_VECTO F ----:22E1  SET_ORIG_VECT F ----:22CB  SET_PAGE#     F ----:1F87
  1406. SET_VIDEO_MOD F ----:1F75  SET#1         F ----:1CAE  SET#2         F ----:1CC6  SET#3         F ----:1CDE
  1407. SETDS               macro  SETDS&SS      F ----:12C3  SETSP&BP            macro  SETUP         F ----:2244
  1408. SETUP_BOX     F ----:21D8  SINPUT        F ----:10F5  SL            F ----:0458  SLEFT         F ----:089D
  1409. SLEN          F ----:0284  SMALLEST_LEN  F ----:275C  SMID          F ----:08E4  SNPRINT       F ----:1075
  1410. SOUND_ON      F ----:227A  SOVER         F ----:0600  SP!           F ----:0303  SP@           F ----:02F7
  1411. SPACE         F ----:1045  SPACES        F ----:104C  SPK_OFF          00000001  SPK_ON           00000003
  1412. SPRINT        F ----:1025  SR            F ----:044E  SRIGHT        F ----:08B5  SSEARCH       F ----:0BA0
  1413. SSEARCH0      F ----:0B54  SSPLIT        F ----:095D  SSWAP         F ----:05F4  SUPPER        F ----:0B2D
  1414. SWAB          F ----:0462  SWAN          F ----:046B  SWAP          F ----:02E5  SWAW          F ----:0471
  1415. SYSTEM_CALL   F ----:0EBF  TEST_ERROR    F ----:24D9  TIMER_COUNT     ----:22BD  TIMER_DONE    F ----:22C3
  1416. TIMER_INT        00000070  TIMER_VECTOR  P ----:22DA  TM_MDE_PRT       00000043  TMR_MDE_REG      000000B6
  1417. TMR2_PRT         00000042  TO_ASCIZ      F ----:0D31  TO_ASCIZ_2ND  F ----:14AA  TO_ASCIZ_ADDR F ----:0D42
  1418. TONE          F ----:22AE  TONE_BURST    F ----:26C7  TONE_CHANGE   F ----:22A9  TONE_OFF      F ----:26C0
  1419. TONE_ON       F ----:26AB  TONE_ON_0     F ----:26B9  TOP_LINE      F ----:21F0  TWO_2CHR#     F ----:2576
  1420. TXT_END       F ----:26E3  ULCORN           000000DA  UNPACK        F ----:0488  URCORN           000000BF
  1421. V_BIT         F ----:2189  VCLR          F ----:1F0C  VLINE         F ----:21A3  VSET          F ----:1EFE
  1422. WGET          F ----:09E5  WHITE         F ----:1F5F  WRITE         F ----:1C1E  WRITE_1CHR    F ----:1BD1
  1423. WRITE_1LINE   F ----:1C70  WRITE_ATR     F ----:201F  WRITE_CHAR/AT F ----:2001  WRITE_CRLF    F ----:1C50
  1424. WRITEAX             macro  WRITEAX&0           macro  WRITEAX&DS          macro  XCO           F ----:20F7
  1425. XLEFT         F ----:08A0  XRIGHT        F ----:08DB  
  1426.  
  1427.  
  1428. NextCode=----:28C0    SymbolsRemaining=2816
  1429. NextData=----:81B0
  1430. Complete compilation
  1431.